Ext.apply(Ext.form.VTypes, {
	chineseCharacters : function(value, field) {
		var regexp = /[\u4e00-\u9fa5]+/;
		return regexp.test(value);
	},
	chineseCharactersText : '该输入项必须为中文字符串',

	phoneNumber : function(value, field) {
		var regexp = /\d{3}-\d{8}|\d{4}-\d{7}/;
		return regexp.test(value);
	},
	phoneNumberMask : /[\d\-]/,
	phoneNumberText : '电话号码无效。',

	// 身份证号码验证
	idCardNo : function(value, field) {
		// 例外号码不参与校验
		if (value == "630104197506300519") {
			return true;
		}
		var obj = new Object();
		obj.value = value;
		if (isIdCardNo(obj)) {
			return true;
		}
		return false;
	},
	idCardNoText : '身份证号码不正确。',

	// 移动电话验证
	mobilePhone : function(value, field) {
		var regexp = /^\d{11}$/;
		return regexp.test(value);
	},
	mobilePhoneText : '移动电话不正确。',

	// 全角字符验证
	SBCCase : function(value, field) {
		var patrn = /^[^\uFF10-\uFF19\uFF41-\uFF5A\uFF21-\uFF3A]*$/;
		return patrn.exec(value);
	},
	SBCCaseText : '不能包含全角字符。',

	// ip地址验证
	ip : function(value, field) {
		var obj = new Object();
		obj.value = value;
		return isValidateIp(obj);
	},
	ipText : 'ip地址不正确。',

	// 不能为空验证
	forbidBlank : function(value, field) {
		if (field.allowBlank == false
				&& Ext.util.Format.trim(value).length == 0)
			return false;
		else
			return true;
	},
	forbidBlankText : '该输入项不能为空',
	
	// 密码确认
	password : function(val, field) {
        if (field.initialPassField) {
            var pwd = Ext.getCmp(field.initialPassField).getValue();
            var isEmpty1=Ext.isEmpty(val);
            var isEmpty2=Ext.isEmpty(pwd);
            if(isEmpty1==isEmpty2) {
            	if(isEmpty1) {
            		return true;
            	}else {
            		return val==pwd;
            	}
            }else {
            	return false;
            }
        }else {
        	return true;
        }
    },
    passwordText : '密码不一致',
    
	// 确认
	confirm : function(val, field) {
        if (field.dmdConfirmField) {
            var e = Ext.getCmp(field.dmdConfirmField);
            return (val == e.getValue());
        }
        return true;
    },
    confirmText : '两次输入的不一致',
    
 	// 起始数字
	endData : function(val, field) {
        if (field.bgnDataField) {
            var bgnData = Ext.getCmp(field.bgnDataField).getValue();
            if (Ext.isEmpty(bgnData)) {
            	return true;
            }
            return Ext.isEmpty(val) || parseFloat(val) >= parseFloat(bgnData);
        }
        return true;
    },
    endDataText : '结束数据不能小于起始数据'
});
